home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 68.7z / BS1 part 68 / Imagemaster AGA vx.xx (1993)(Black Belt Systems)(Req. AREXX)(Disk 1 of 6)(Install 1)[HD][WB3.0].7z / Imagemaster AGA vx.xx (1993)(Black Belt Systems)(Req. AREXX)(Disk 1 of 6)(Install 1)[HD][WB3.0].adf / install-im < prev    next >
Text File  |  1993-09-23  |  28KB  |  754 lines

  1. ; --------------------------------------------------------------
  2. ; CBM installer script to install Imagemaster R/t on users
  3. ; hard-drive. Loosely derived from the original Imagemaster
  4. ; installation script.
  5. ; --------------------------------------------------------------
  6. ; Copyright 1993, Black Belt Systems, ALL RIGHTS RESERVED
  7. ; --------------------------------------------------------------
  8. ;     Written by: Ben Williams
  9. ;   Date Written: July 26th, 1993
  10. ;            For: Imagemaster R/t
  11. ; --------------------------------------------------------------
  12. ;        Updates
  13. ;        -------
  14. ;September 01/93: Now deletes the old .info file on re-installs
  15. ;                 so that new icon shows up.
  16. ;
  17. ;September 13/93: Now asks user if they wish to have ApAsisst
  18. ;                 placed in c: (which is suggested)
  19. ;
  20. ;September 16/93: Now adds a path add statement to the user's
  21. ;                 shell-startup file so that ApAssist and
  22. ;                 Imagemaster can run successfully from shell;
  23. ;                 Also copies "ReadMeFirst" document into the
  24. ;                 Imagemaster R/t install directory.
  25. ; --------------------------------------------------------------
  26. ;Notes:
  27. ;------->
  28. ;  (1) We force a minimum level of AVERAGE user so that they
  29. ;      must specify the target directory for the install and
  30. ;      answer some basic questions such as "Do you have an FPU"
  31. ;
  32. ;  (2) There must be sufficient diskspace to install the software
  33. ;      or we won't even try to install.
  34. ;
  35. ;  (3) The ARexx REXX assign must be available, or we can't install
  36. ;
  37. ;  (4) If the user has already assigned targets for ALL of:
  38. ;           RXPI:
  39. ;           CMPI:
  40. ;           IMDOC:
  41. ;           IMCAT:
  42. ;      Then we will not attempt to create directories in the
  43. ;      Imagemaster R/t drawer for them. Instead, we will install
  44. ;      the relevant portions of the software to the specified
  45. ;      locations. This MAY defeat the available space checking
  46. ;      code in the install script, if these locations are on
  47. ;      a different volume than the target volume.
  48. ;
  49. ;------------------------------------------------------------------
  50.  
  51.  
  52. ; Install script is initiated from disk one of the install group,
  53. ; so we do all things we possibly can from disk 1, first.
  54. ; Disk 1 is where most of the miscellaneous items are stored.
  55. ;----------------------------------------------------------------
  56.  
  57. ; cleanup routine
  58. ;----------------
  59. (onerror)
  60.  
  61. ; Create disk filesystem names and volume names
  62. ; Some installer functions want the ":" character, and
  63. ; some don't. Another blow for consistancy in programming.
  64. ; --------------------------------------------------------
  65. (set d1 "IM_Install1:") (set v1 "IM_Install1")
  66. (set d2 "IM_Install2:") (set v2 "IM_Install2")
  67. (set d3 "IM_Install3:") (set v3 "IM_Install3")
  68. (set d4 "IM_Install4:") (set v4 "IM_Install4")
  69. (set d5 "IM_Install5:") (set v5 "IM_Install5")
  70. (set d6 "IM_Install6:") (set v6 "IM_Install6")
  71.  
  72. ; This IM R/t release is (approximately) sized as follows:
  73. ;---------------------------------------------------------
  74. (set misc_spc 50000)
  75. (set imrt_spc 2100000)
  76. (set film_spc 180000)
  77. (set isha_spc 25000)
  78. (set devl_spc 10000)
  79. (set pimo_spc 2000000)
  80. (set apas_spc 60000)
  81. (set adoc_spc 1400000)
  82.  
  83. ; Make certain rexx: directory exists - if ARexx isn't running, we
  84. ; can (sortof) live with that, though the user will be seriously
  85. ; crippled in capability. If no assignment exists, we're toast
  86. ;-----------------------------------------------------------------
  87. (if (= (getassign "rexx") "")
  88.     ( ; Then...
  89.         (abort "Cannot install - no REXX: assignment in this system. "
  90.                "You MUST have ARexx and a drawer assigned to REXX: "
  91.                "to hold ARexx scripts in order to successfully "
  92.                "install Imagemaster. Please properly configure "
  93.                "your computer and try again. If you do not know how "
  94.                "to accomplish this, call your dealer or consultant."
  95.         )
  96.     )
  97. )
  98.  
  99. ; Find out where user wants to put Imageaster
  100. ;--------------------------------------------
  101. (set user_place
  102.     (askdir
  103.         (prompt "On which Volume shall we place the Imagemaster Drawer? ")
  104.         (help @askdir-help "It is important that you realize that the destination volume you specify "
  105.                            "here is where the DRAWER in which Imagemaster and its associated data "
  106.                            "files will be placed. Even if this is an update to an earlier "
  107.                            "installation, you still need to specify this location the same way. "
  108.                            "Otherwise, a new \"Imagemaster\" drawer will be created INSIDE your "
  109.                            "old one, causing much confusion and not amusing anyone. Do not, under "
  110.                            "under any circumstances, specify a drawer - you must specify only a "
  111.                            "volume name such as WORK:")
  112.         (default @default-dest)
  113.     )
  114. )
  115.  
  116. ; Check to see if assigns are already made
  117. ; This accounts for custom installs by techno-types
  118. ;--------------------------------------------------
  119. (set as_made 0)
  120. (if (<> (getassign "rxpi:") "")
  121.     (if (<> (getassign "cmpi:") "")
  122.         (if (<> (getassign "IMDOC:") "")
  123.             (if (<> (getassign "IMCAT:") "")
  124.                (set as_made 1) ; All four assigns must be made!
  125.             )
  126.         )
  127.     )
  128. )
  129.  
  130. ; Find out if user wants the developer code
  131. ;------------------------------------------
  132. (set dev_install
  133.     (askoptions
  134.         (prompt "Would you like to have the Public Interface developer "
  135.                 "C and ARexx code, with documentation? This will allow "
  136.                 "you to create public interface modules of your own, IF "
  137.                 "you own the SAS C compiler and have typical Amiga "
  138.                 "developer skills.")
  139.                 (help @askoptions-help "If you are NOT a technical type, "
  140.                 "you have no need for this data. If you are, then by all "
  141.                 "means install it!")
  142.         (choices "Install SAS C and ARexx developer code?")
  143.         (default 0)
  144.     )
  145. )
  146.  
  147. ; Check with user if they want the floating point version
  148. ;--------------------------------------------------------
  149. (set float_install
  150.     (askchoice
  151.         (prompt "Install the hardware floating-point version? ")
  152.         (help "An FPU is a special hardware mathematics processor "
  153.               "which allows a computer which uses it to figure out "
  154.               "answers to math problems using floating point math "
  155.               "much faster than it could without an FPU. A 68000 "
  156.               "Amiga has no FPU. 68020 or 68030 based-Amigas may "
  157.               "have an FPU - check your documentation if you're not "
  158.               "certain. 68040-based Amigas always have the FPU built "
  159.               "right in. The non-FPU version will work on an Amiga "
  160.               "with an FPU, however it will be much slower which "
  161.               "will cost you unecessary time when processing images. "
  162.               @askchoice-help)
  163.         (choices "Install Floating Point (FPU) version"
  164.                  "Install standard (NON-FPU) version")
  165.         (default 1)
  166.     )
  167. )
  168.  
  169. ; Derive total install space
  170. ; for required elements of installation:
  171. ; ----------------------------------------------------------------
  172. (set total_size imrt_spc)                ; Imagemaster R/t
  173. (set total_size (+ total_size film_spc)) ; Filmstrip Viewer
  174. (set total_size (+ total_size isha_spc)) ; IShapes files
  175. (set total_size (+ total_size pimo_spc)) ; PI Modules
  176. (set total_size (+ total_size adoc_spc)) ; Hypertext Documentation
  177. (set total_size (+ total_size misc_spc)) ; Any remaining items...
  178.  
  179. ; Add space for developer code, if desired
  180. ; ----------------------------------------
  181. (if (= dev_install 1)
  182.     ( ; Then...
  183.         (set total_size (+ total_size devl_spc)) ; Developer Code
  184.     )
  185. )
  186.  
  187. ; Decide if we can install ApAssist in the c: directory
  188. ; If we can, we do it immediately, before we do the rest
  189. ; of the install - this will ensure that the disk space
  190. ; check will take it into account if it is on the same
  191. ; volume by virtue of its already taking up space; if
  192. ; it's not on the same volume, then we won't "see" it in
  193. ; the disk space check, and that works fine too. This
  194. ; install comes from disk one:
  195. ; -----------------------------------------------------
  196. (set app_in_c 1) ; assume ApAssist will fit in c:
  197. (set app_space  (getdiskspace "c:"))
  198. (if (< app_space apas_spc)
  199.     ( ; Then must go to IM R/t directory
  200.         (set app_in_c 0)
  201.         (set total_size (+ total_size apas_spc)) ; ApAssist executable
  202.         (copyfiles (source d1)
  203.                (dest "ram:")
  204.                (pattern "ApAssist")
  205.                (files)
  206.         )
  207.     )
  208.     ( ; Else _could_ go in c:
  209.       ; Find out if user wants ApAssist in c:
  210.       ;--------------------------------------
  211.         (set apa_install
  212.             (askoptions
  213.                 (prompt "It has been determined that you do have enough "
  214.                         "free space on the volume that your c: assignment "
  215.                         "points at to install ApAssist in c:. This is the "
  216.                         "suggested location, the most generally useful. If "
  217.                         "for some reason this is not acceptable, ApAssist "
  218.                         "will be installed in the Imagemaster R/t drawer "
  219.                         "along with the rest of the software.")
  220.                         (help @askoptions-help
  221.                         " ApAssist is Black Belt Systems' hypertext online "
  222.                         "Documentation system. It runs the online manual "
  223.                         "for Imagemaster R/t; the reason that it is a very "
  224.                         "good idea to place it in your c: assigned location "
  225.                         "is because in this location, other software can "
  226.                         "also use it (because c: is always part of the "
  227.                         "path AmigaDOS searches for commands.)")
  228.                 (choices "Install ApAssist in your c: assigned location?")
  229.                 (default 0)
  230.             )
  231.         )
  232.     )
  233. )
  234.  
  235. ; If it is _possible_ to put ApAssist in c:
  236. ; Then ask the user if that is o.k. with them:
  237. ;---------------------------------------------
  238. (if (= app_in_c 1)
  239.     ( ; then it is possible
  240.         (if (= apa_install 1)
  241.             ( ; then they want it in c:
  242.                 (set app_in_c 1)
  243.                 (copyfiles (source d1)
  244.                     (dest "c:")
  245.                     (pattern "ApAssist")
  246.                     (files)
  247.                 )
  248.             )
  249.         )
  250.         ( ; else they do NOT want it in c:, put it in IM R/t location
  251.             (set app_in_c 0)
  252.             (set total_size (+ total_size apas_spc)) ; ApAssist executable
  253.             (copyfiles (source d1)
  254.                    (dest "ram:")
  255.                    (pattern "ApAssist")
  256.                    (files)
  257.             )
  258.         )
  259.     )
  260. )
  261.  
  262. ; At this point, we've got a pretty good handle on installation
  263. ; storage requirements, with the possible exception of if the
  264. ; user has created custom assignments for all of RXPI, CMPI,
  265. ; IMDOC and IMCAT - in which case we can mistakenly abort here
  266. ; if the target disk is short on space. Hopefully a technically
  267. ; competant user such as would intentionally redirect the
  268. ; installation using assigns will manage their system well
  269. ; enough to avoid that problem. If we can't do the main install,
  270. ; we quit immediately with an informative message.
  271. ; -------------------------------------------------
  272. (set tgt_space  (getdiskspace user_place))
  273. (if (< tgt_space total_size)
  274.     ( ; Then...
  275.         (abort "This installation requires about " ("%ld" total_size)
  276.                " bytes free on the "
  277.                "volume where you wish to install Imagemaster. Please "
  278.                "make this space available and then re-install. For your "
  279.                "information, the volume you have selected has only "
  280.                ("%ld " tgt_space) "bytes free. You need "
  281.                ("%ld " (- total_size tgt_space)) "more bytes."
  282.         )
  283.     )
  284. )
  285.  
  286. ; Get the items we need from disk 1
  287. ;----------------------------------
  288. (copyfiles (source d1)
  289.            (dest "ram:")
  290.            (pattern "(extract|ReadMeFirst|ReadMeFirst.info|smod|imblock|join|delete|fv.lzh|ish.lzh|imi.lzh|dc.lzh|ia.lzh|ib.lzh)")
  291.            (files)
  292. )
  293.  
  294. (if (= dev_install 1)
  295.     ( ; Then...
  296.         (copyfiles (source d1)
  297.                    (dest "ram:")
  298.                    (pattern "dd.lzh")
  299.                    (files)
  300.         )
  301.     )
  302. )
  303.  
  304. ; We've got the target; now we need to make sure that we have our main DIR
  305. ;-------------------------------------------------------------------------
  306. (set im_dest (tackon user_place "Imagemaster"))
  307. (if (not (exists im_dest))
  308.     ( ; Then...
  309.         (makedir im_dest (infos))
  310.     )
  311. )
  312. (set @default-dest im_dest)
  313.  
  314. ; Create subordinate target strings
  315. ;----------------------------------
  316. (set rxpi_dir   (tackon im_dest "rxpi"))
  317. (set wipe_dir   (tackon rxpi_dir "wipes"))
  318. (set cmpi_dir   (tackon im_dest "cmpi"))
  319. (set ish_dir    (tackon im_dest "IShapes"))
  320. (set dev_dir    (tackon im_dest "Developer"))
  321. (set imdoc_dir  (tackon im_dest "imdoc"))
  322. (set imcat_dir  (tackon im_dest "imcat"))
  323. (set lib_dir    "libs:")
  324. (set rexx_dir   "rexx:")
  325.  
  326. ; Create RXPI drawer if it's not already there
  327. ; and if user doesn't have it custom assigned
  328. ; elsewhere
  329. ;---------------------------------------------
  330. (if (not (exists rxpi_dir))
  331.     ( ; Then...
  332.         (if (= as_made 0)
  333.             ( ; Then...
  334.                 (makedir rxpi_dir (infos))
  335.             )
  336.         )
  337.     )
  338. )
  339.  
  340. ; Create wipes drawer if it's not already there
  341. ;----------------------------------------------
  342. (if (not (exists wipe_dir))
  343.     ( ; Then...
  344.         (makedir wipe_dir (infos))
  345.     )
  346. )
  347.  
  348. ; Create CMPI drawer if it's not already there
  349. ; and if user doesn't have it custom assigned
  350. ; elsewhere
  351. ;---------------------------------------------
  352. (if (not (exists cmpi_dir))
  353.     ( ; Then...
  354.         (if (= as_made 0)
  355.             ( ; Then...
  356.                 (makedir cmpi_dir (infos))
  357.             )
  358.         )
  359.     )
  360. )
  361.  
  362. ; Create IShapes drawer if it's not already there
  363. ;------------------------------------------------
  364. (if (not (exists ish_dir))
  365.     ( ; Then...
  366.         (makedir ish_dir (infos))
  367.     )
  368. )
  369.  
  370. ; Create IMDOC drawer if it's not already there
  371. ; and if user doesn't have it custom assigned
  372. ; elsewhere
  373. ;----------------------------------------------
  374. (if (not (exists imdoc_dir))
  375.     ( ; Then...
  376.         (if (= as_made 0)
  377.             ( ; Then...
  378.                 (makedir imdoc_dir (infos))
  379.             )
  380.         )
  381.     )
  382. )
  383.  
  384. ; Create IMCAT drawer if it's not already there
  385. ; and if user doesn't have it custom assigned
  386. ; elsewhere
  387. ;----------------------------------------------
  388. (if (not (exists imcat_dir))
  389.     ( ; Then...
  390.         (if (= as_made 0)
  391.             ( ; Then...
  392.                 (makedir imcat_dir (infos))
  393.             )
  394.         )
  395.     )
  396. )
  397.  
  398. ; Make assignments so user can operate immediately
  399. ; If the user has already specially made these assignments,
  400. ; then we'll use those locations as targets instead
  401. ;----------------------------------------------------------
  402. (if (= as_made 0)
  403.     ( ; Then...
  404.         (makeassign "RXPI" rxpi_dir (safe))
  405.         (makeassign "CMPI" cmpi_dir (safe))
  406.         (makeassign "IMDOC" imdoc_dir (safe))
  407.         (makeassign "IMCAT" imcat_dir (safe))
  408.     )
  409. )
  410. (makeassign "IMIMIM" im_dest (safe))
  411.  
  412. ; Extract this portion of the installation
  413. ;-----------------------------------------
  414. (run ("ram:extract >con:0/50/640/100/extract -m e ram:imi %s/" im_dest))
  415. (run ("ram:extract >con:0/50/640/100/extract -m e ram:fv %s/" im_dest))
  416. (run ("ram:extract >con:0/50/640/100/extract -m e ram:ish %s/" ish_dir))
  417.  
  418. ; Decide about .info file name
  419. ;-----------------------------
  420. (if (= float_install 0)
  421.     ( ; Then...
  422.         (if (exists (tackon im_dest "imf.info"))
  423.             (delete (tackon im_dest "imf.info")))
  424.         (rename (tackon im_dest "iminfo") (tackon im_dest "imf.info"))
  425.     )
  426.     ( ; Else...
  427.         (if (exists (tackon im_dest "im.info"))
  428.             (delete (tackon im_dest "im.info")))
  429.         (rename (tackon im_dest "iminfo") (tackon im_dest "im.info"))
  430.     )
  431. )
  432.  
  433. ; Clean up after these archives
  434. ;------------------------------
  435. (delete "ram:ish.lzh")
  436. (delete "ram:fv.lzh")
  437. (delete "ram:imi.lzh")
  438.  
  439. ; Install DCTV.Library
  440. ; --------------------
  441. (run ("ram:extract >con:0/50/640/100/extract -m e ram:dc ram:"))
  442. (copylib (source "ram:dctv.library") (dest "libs:"))
  443. (delete "ram:dc.lzh")
  444. (delete "ram:dctv.library")
  445.  
  446. ; Set variables pointing to the disk with the correct IM R/t archive
  447. ;-------------------------------------------------------------------
  448. (if (= float_install 0)
  449.     ( ; Then...
  450.         (set imp_src d3)
  451.         (set imv_src v3)
  452.         (set proc_file "imb.lzh")
  453.         (delete "ram:ia.lzh")
  454.         (run ("rename ram:ib.lzh ram:iii.lzh"))
  455.     )
  456.     ( ; Else...
  457.         (set imp_src d2)
  458.         (set imv_src v2)
  459.         (set proc_file "ima.lzh")
  460.         (delete "ram:ib.lzh")
  461.         (run ("rename ram:ia.lzh ram:iii.lzh"))
  462.     )
  463. )
  464.  
  465. ; Ask for the proper diskette
  466. ;----------------------------
  467. (askdisk
  468.     (prompt ("Please insert the %s diskette " imv_src))
  469.     (help " This diskette is absolutely required to complete this "
  470.           "installation! It contains the version of Imagemaster R/t "
  471.           "You requested (floating point, or non floating point).")
  472.     (dest imv_src)
  473. )
  474.  
  475. ; This gets the needed archive from the proper disk
  476. ;--------------------------------------------------
  477. (copyfiles (source imp_src)
  478.            (dest "ram:")
  479.            (pattern proc_file)
  480.            (files)
  481. )
  482.  
  483. ; Cojoin the fragments of the R/t archive and toss the sources
  484. ;-------------------------------------------------------------
  485. (run ("ram:join ram:%s ram:iii.lzh TO ram:ixi.lzh" proc_file))
  486. (delete ("ram:%s" proc_file))
  487. (delete "ram:iii.lzh")
  488.  
  489. ; Here, we extract the image processor, copying it at the same time
  490. ;------------------------------------------------------------------
  491. (run ("ram:extract >con:0/50/640/100/extract -m e ram:ixi.lzh %s/" im_dest))
  492.  
  493. ; Delete the joined image processor archive
  494. ;------------------------------------------
  495. (delete ("ram:ixi.lzh"))
  496.  
  497. ; If user wants the developer stuff, install it
  498. ;----------------------------------------------
  499. (if (= dev_install 1)
  500.     ( ; Then...
  501.         (if (not (exists dev_dir))
  502.             ( ; Then...
  503.                 (makedir dev_dir (infos))
  504.             )
  505.         )
  506.         (run ("ram:extract >con:0/50/640/100/extract -m e ram:dd %s/" dev_dir))
  507.         (delete "ram:dd.lzh")
  508.     )
  509. )
  510.  
  511. ; Install the ApAssist documentation
  512. ; ----------------------------------
  513. (askdisk
  514.     (prompt ("Please insert the %s diskette " v4))
  515.     (help " This diskette is required to complete the "
  516.           "installation. It contains the documentation "
  517.           "for the Imagemaster R/t software!")
  518.     (dest v4)
  519. )
  520. (copyfiles (source d4)
  521.            (dest "ram:")
  522.            (pattern "apa.lzh")
  523.            (files)
  524. )
  525. (run ("ram:extract >con:0/50/640/100/extract -m e ram:apa %s/" imdoc_dir))
  526. (delete "ram:apa.lzh")
  527.  
  528. ; Get the PI Module archive chunks....
  529. ;-------------------------------------
  530. (makedir "ram:gbzyx")
  531. (askdisk
  532.     (prompt ("Please insert the %s diskette " v5))
  533.     (help " This diskette is required to install "
  534.           "the PI Modules")
  535.     (dest v5)
  536. )
  537. (copyfiles (source d5)
  538.            (dest "ram:")
  539.            (pattern "piarc.lzh.parta")
  540.            (files)
  541. )
  542.  
  543. ; Get part B of the piarc.lzh file
  544. ;----------------------------------------------------------
  545. (askdisk
  546.     (prompt ("Please insert the %s diskette " v6))
  547.     (help " This diskette is required to install "
  548.           "the PI Modules.")
  549.     (dest v6)
  550. )
  551. (copyfiles (source d6)
  552.            (dest "ram:")
  553.            (pattern "piarc.lzh.partb")
  554.            (files)
  555. )
  556.  
  557. ; Now, enjoin the two lzh fragments back into a usable archive:
  558. ; -------------------------------------------------------------
  559. (run ("ram:join ram:piarc.lzh.parta ram:piarc.lzh.partb TO ram:piarc.lzh"))
  560.  
  561. ; Get rid of fragments
  562. ; --------------------
  563. (run ("ram:delete ram:piarc.lzh.part? QUIET"))
  564.  
  565. ; Now to get the PI modules installed
  566. ; Begin by backing up old macro file, if it exists
  567. ;-------------------------------------------------
  568. (if (exists "s:Default.immcr.old")
  569.     (delete "s:Default.immcr.old"))
  570. (if (exists "s:Default.immcr")
  571.     (rename "s:Default.immcr" "s:Default.immcr.old"))
  572. ;---------------
  573.  
  574. ; Old macros are backed up, ready for main PI install
  575. ; Extract the PI Modules
  576. ;----------------------------------------------------
  577. (run ("ram:extract >con:0/50/640/100/extract -m e ram:piarc ram:gbzyx/"))
  578. (delete "ram:piarc.lzh")
  579.  
  580. ; Archive is unpacked and ready to copy
  581. ; first, backup list.list if available
  582. ;--------------------------------------
  583. (if (exists "cmpi:list.list")
  584.     ( ; Then...
  585.         (if (exists "cmpi:list.list.old")
  586.             ( ; Then...
  587.                 (delete "cmpi:list.list.old")
  588.             )
  589.         )
  590.         (rename "cmpi:list.list" "cmpi:list.list.old")
  591.         (message "Please note that during installation, your previous "
  592.                  "\"list.list\" file was located and renamed to "
  593.                  "\"list.list.old\". All of your aftermarket PI "
  594.                  "modules (if any) are still intact, but will not "
  595.                  "show up on PI lists untill the new list.list file "
  596.                  "has been appropriately modified."
  597.          (help   " This has been done so that you may refer to it if "
  598.                  "you had aftermarket PI modules declared in it. "
  599.                  "A new list.list file has been created as part of "
  600.                  "this install procedure - you should use this new "
  601.                  "list.list file instead of the old one (that will "
  602.                  "happen automatically) but if you DID have any "
  603.                  "aftermarket PI modules, such as Metadigm's ES300c "
  604.                  "scanner driver, you'll need to add the control "
  605.                  "line(s) for it (them) into the new list.list file. "
  606.                  "You would then use the old list.list file as a template "
  607.                  "to accomplish this.")
  608.          )
  609.     )
  610. )
  611.  
  612. ; move the "odd" files (not PI rexx or PI cmds)
  613. ;----------------------------------------------
  614. (copyfiles (source "ram:gbzyx") (dest "rexx:")
  615.            (pattern "(picmdpath|launch.rexx|imtf.rexx)") (files))
  616. (copyfiles (source "ram:gbzyx") (dest "s:")
  617.            (pattern "(default.??mcr)") (files))
  618. (copyfiles (source "ram:gbzyx") (dest "cmpi:")
  619.            (pattern "list.list") (files))
  620. (copyfiles (source "ram:gbzyx") (dest "rxpi:wipes")
  621.            (pattern "#?.rxwp") (files))
  622. (copyfiles (source "ram:") (dest im_dest)
  623.            (pattern "ReadMeFirst#?") (files))
  624. (delete "ram:ReadMeFirst")
  625. (delete "ram:ReadMeFirst.info")
  626. (delete "ram:gbzyx/picmdpath")
  627. (delete "ram:gbzyx/list.list")
  628. (delete "ram:gbzyx/launch.rexx")
  629. (delete "ram:gbzyx/imtf.rexx")
  630. (run "ram:delete ram:gbzyx/Default.??mcr QUIET")
  631. (run "ram:delete ram:gbzyx/#?.rxwp QUIET")
  632.  
  633. ; Next, copy all the PI ARexx scripts
  634. ;------------------------------------
  635. (copyfiles (source "ram:gbzyx") (dest "rxpi:")
  636.            (pattern "#?.rexx") (files))
  637. (run "ram:delete ram:gbzyx/#?.rexx QUIET")
  638.  
  639. ; Next, copy all the PI Commands
  640. ;-------------------------------
  641. (copyfiles (source "ram:gbzyx") (dest "cmpi:")
  642.            (pattern "#?") (files))
  643.  
  644. ; Now, we have to decide if we can install the FPU PI modules
  645. ;------------------------------------------------------------
  646. (if (exists "CMPI:rdjpg") (delete "CMPI:rdjpg"))
  647. (if (exists "CMPI:wrjpg") (delete "CMPI:wrjpg"))
  648. (if (= float_install 0)
  649.     ( ; Then...
  650.         (rename "CMPI:x_JPR030" "CMPI:rdjpg")
  651.         (rename "CMPI:x_JPW030" "CMPI:wrjpg")
  652.     )
  653.     ( ; Else...
  654.         (rename "CMPI:x_JPR000" "CMPI:rdjpg")
  655.         (rename "CMPI:x_JPW000" "CMPI:wrjpg")
  656.     )
  657. )
  658.  
  659. ; If we did NOT install ApAssist into the user's "c:" assignment
  660. ; due to a lack of room, we'll now put it here in the main IM
  661. ; drawer. This is workable for us, but unfortunate because it
  662. ; won't be generally available to other applications
  663. ; --------------------------------------------------
  664. (if (= app_in_c 0)
  665.     ( ; Then...
  666.         (copyfiles (source "ram:") (dest im_dest)
  667.                    (pattern "ApAssist") (files))
  668.         (delete "ram:ApAssist")
  669.     )
  670. )
  671.  
  672. ; clean up
  673. ;---------
  674. (run "ram:delete CMPI:x_#? QUIET")
  675. (run "ram:delete ram:gbzyx/#? QUIET")
  676. (delete "ram:gbzyx")
  677. (delete "ram:extract")
  678. (delete "ram:delete")
  679. (delete "ram:join")
  680.  
  681. ; Add assignment to user's "user-startup" directory for new boot ops
  682. ; IF they were not already correctly done - otherwise skip this part
  683. ;-------------------------------------------------------------------
  684. (if (= as_made 0)
  685.     ( ; Then...
  686.         (startup "Imagemaster"
  687.             (help " This operation adds lines to your user-startup file "
  688.                   "which are harmless assignment statements to drawers "
  689.                   "within the Imagemaster drawer, called \"IMIMIM:\", "
  690.                   "\"RXPI:\", \"IMDOC:\", \"IMCAT:\" and \"CMPI:\" each "
  691.                   "time you boot your Amiga. These assignments are used to "
  692.                   "let Imagemaster's Public Interface \(PI\) drivers know "
  693.                   "where its data files reside. Unless you know that you "
  694.                   "have another assignment with one of these names, it is "
  695.                   "extremely unlikely that there would be any reason to "
  696.                   "NOT let this happen.")
  697.             (prompt "Is it o.k. to add five SAFE lines to your User-Startup "
  698.                     "file?")
  699.             (command ("assign RXPI: %s\n" rxpi_dir))
  700.             (command ("assign CMPI: %s\n" cmpi_dir))
  701.             (command ("assign IMDOC: %s\n" imdoc_dir))
  702.             (command ("assign IMCAT: %s\n" imcat_dir))
  703.             (command ("assign IMIMIM: %s\n" im_dest))
  704.         )
  705.     )
  706. )
  707.  
  708. (set shellstart
  709.     (askoptions
  710.         (prompt "As part of the usual install procedure, we "
  711.         "normally add a statement to your shell-startup file "
  712.         "which essentially teaches your Amiga how to find "
  713.         "Imagemaster R/t and its help manager from any shell "
  714.         "prompt - no matter what directory you are currently "
  715.         "\"cd'd\" to. We strongly suggest that you leave this "
  716.         "option checked, unless you are an expert with paths "
  717.         "and already have other plans in force that will "
  718.         "handle the path issues. Imagemaster R/t MUST have a "
  719.         "path to IMIMIM: if it is to be operated from the "
  720.         "shell at any time.")
  721.         (help @askoptions-help " This operation uses a custom "
  722.         "command written at Black Belt Systems which is able "
  723.         "to modify your shell-startup file. The changes are "
  724.         "made in such a way as to be clear to you, should you "
  725.         "even have the need to edit your shell-startup file "
  726.         "in the future. Allowing it to occur will cause no "
  727.         "ill-effects, even if at some later date you remove "
  728.         "the Imagemaster R/t drawer. Note that if you have "
  729.         "a shell open NOW, the path will not be available "
  730.         "there unless you add it manually. This is because "
  731.         "each shell has it's own path. The statement in the "
  732.         "shell-startup file added by this operation will "
  733.         "cause the path to be added each time a new shell "
  734.         "is opened. Since your current shell, if any, was "
  735.         "opened using the shell-startup file before we added "
  736.         "the new PATH statement, it does not have the path "
  737.         "required to launch Imagemaster R/t properly.")
  738.         (choices "Add PATH statement to your shell-startup?")
  739.         (default 1)
  740.     )
  741. )
  742.  
  743. (if (= shellstart 1)
  744.     (if (exists "s:shell-startup")
  745.         ( ; then...
  746.             (run "ram:smod s:shell-startup ram:imblock Imagemaster")
  747.         )
  748.     )
  749. )
  750. (delete "ram:smod")
  751. (delete "ram:imblock")
  752.  
  753. (exit)
  754.